1. Field of the Invention
The present invention generally relates to the field of integrated circuits and more particularly to the emulation of a wired-OR hardware connection.
2. Description of the Related Art
“Method and System For Providing Birectional Asynchronous Communication” (U.S. Pat. No. 6,876,229 B1, Apr. 5, 2005) discloses a communication system for establishing bidirectional, asynchronous communication between a first device and a second device. The system includes first asynchronous encoder logic and second asynchronous encoder logic for controlling the state of the communication system such that bi-directional communication is enabled without a direction control line.
Publication “Method For Implementing Clock Stretching For Half Duplex Open Collector Communications Protocol”, IP.com, Vol. 6, No. 7A, (Jun. 20, 2006) outlines a method for facilitating clock stretching (clock synchronization). Clock stretching is a part of the data transmission protocol of SMBus, I2C bus and other bidirectional open collector/open drain buses. It allows a slave device to slow down the data transmission by “stretching” the clock signal which is being driven by the master. Clock stretching is trivial for a point to point connection of a master and slave device both of which use an open collector or open drain driver, In such a case, the slave can cause a pause in the data transmission, by driving the clock line low after the master has driven it low. When the master releases the clock line, the clock line stays low until the slave also releases it. The master will not transmit the next data byte until the slave releases the clock. This technique works with no additional hardware because of the unique characteristics of an open collector/open drain net.
When this type of communications bus is switched or routed through a programmable logic device, clock stretching is not easily implemented since most commercially available programmable logic devices do not allow direct connection between I/O thereby preventing the establishment of a true wired-OR connection. This invention addresses this situation and allows the implementation of clock stretching of bidirectional open collector/open drain signals routed through programmable logic devices.